<?php
namespace Common\Controller;
use Think\Controller;
class ValidateController extends Controller {
    // +----------------------------------------------------------------------
    // | 函数共有参数 @param string $back 是否终止执行 die终止，return返回结果 false 
    // +----------------------------------------------------------------------
    // | 下列参数参见方法 returnResult
    // |  @param string $info 
    // |  @param string $status
    // +----------------------------------------------------------------------
    public function __construct()
    {
        parent::__construct();
    }
    /**
     * 空验证 通过返回 true
     * @param unknown $val 验证值
     * 
     */
    protected function emptyValidate($val,$info='',$status=FALSE,$back='die')
    {
        if (empty($val)) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
        
    }
    /**
     * 相同验证 通过返回 true
     * @param unknown $val1 验证值1
     * @param unknown $val2 验证值2
     * 
     */
    protected function eqValidate($val1,$val2,$info='',$status=FALSE,$back='die')
    {
        if ($val1==$val2) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
        
    }
    /**
     * 相同验证 通过返回 true
     * @param unknown $val1 验证值1
     * @param unknown $val2 验证值2
     * 
     */
    protected function egtValidate($val1,$val2,$info='',$status=FALSE,$back='die')
    {
        if ($val1>=$val2) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
        
    }
    protected function gtValidate($val1,$val2,$info='',$status=FALSE,$back='die')
    {
        if ($val1>$val2) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
        
    }
    /**
     * 相同验证 通过返回 true
     * @param unknown $val1 验证值1
     * @param unknown $val2 验证值2
     * 
     */
    protected function eltValidate($val1,$val2,$info='',$status=FALSE,$back='die')
    {
        if ($val1<=$val2) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
        
    }
    protected function ltValidate($val1,$val2,$info='',$status=FALSE,$back='die')
    {
        if ($val1<$val2) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
        
    }
    /**
     * 不相同验证 通过返回 true
     * @param unknown $val1 验证值1
     * @param unknown $val2 验证值2
     * 
     */
    protected function neqValidate($val1,$val2,$info='',$status=FALSE,$back='die')
    {
        if ($val1!=$val2) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
        
    }
    /**
     * 空验证 通过返回 true
     * @param unknown $val 验证值
     * 
     */
    protected function inArrayValidate($val,$arr,$info='',$status=FALSE,$back='die')
    {
        if (in_array($val,$arr)) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
        
    }
    /**
     * 非空验证 通过返回 true
     * @param unknown $val 验证值
     */
    protected function notEmptyValidate($val,$info='',$status=FALSE,$back='die')
    {
        if (!empty($val)) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
    }
    /**
     * 非空验证 通过返回 true
     * @param unknown $val 验证值
     */
    protected function numVerification($val,$info='',$status=FALSE,$back='die')
    {
        if (is_numeric($val)) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
    }
    /**
     * ture验证 通过返回 true
     * @param unknown $val 验证值
     */
    protected function trueValidate($val,$info='',$status=FALSE,$back='die')
    {
        if ($val) {
            return true;
        }
        if ($back=='die') {
            $this->returnResult($info,$status);
        }
        if ($back=='return') {
            return false;
        }
    }
    /**
     * 公用结果集返回
     * @param unknown $info 返回时附带的信息
     * @param string $status ajax返回时附带的编号
     * 调用时保证在方法或控制器内存在return_type属性，并且已经赋值
     */
    protected function returnResult($info,$status=FALSE)
    {
        if ($this->return_type=='ajax') {
            $this->ajaxReturn(['info'=>$info,'status'=>$status]);
        }
        if ($this->return_type=='error') {
            if ($status==FALSE) {
                $this->error($info);
            }
            if ($status==TRUE) {
                $this->success($info);exit();
            }
        }
    }
    /**
     * 公用结果集返回
     * @param unknown $info 返回时附带的信息
     * @param string $status ajax返回时附带的编号
     * 调用时保证在方法或控制器内存在return_type属性，并且已经赋值
     */
    protected function resReturn($res,$true_info,$false_info)
    {
        if ($res) {
            $this->returnResult($true_info,true);
        }else {
            $this->returnResult($false_info,false);
        }
    }
}